﻿using System;
using System.Configuration;

namespace TestVidoopSecure
{
    public sealed class ConfigurationSettings : ConfigurationSection
    {
        /// <summary>
        /// Base URL for the VidoopSecure web service API.
        /// </summary>
        [ConfigurationProperty("ApiBase", IsRequired = true)]
        public string ApiBase
        {
            get { return (string)this["ApiBase"]; }
            set { this["ApiBase"] = value; }
        }

        /// <summary>
        /// Unique customer identifier.
        /// </summary>
        [ConfigurationProperty("CustomerId", IsRequired=true)]
        public string CustomerId
        {
            get { return (string)this["CustomerId"]; }
            set { this["CustomerId"] = value; }
        }

        /// <summary>
        /// Identifier of a site, used in Site-specific URLs.
        /// </summary>
        [ConfigurationProperty("SiteId", IsRequired=true)]
        public string SiteId
        {
            get { return (string)this["SiteId"]; }
            set { this["SiteId"] = value; }
        }      

        /// <summary>
        /// Dynamically-generated username associated with a
        /// Customer and Site.
        /// </summary>
        [ConfigurationProperty("ApiUsername", IsRequired=true)]
        public string ApiUsername
        {
            get { return (string)this["ApiUsername"]; }
            set { this["ApiUsername"] = value; }
        }

        /// <summary>
        /// Dynamically-generated password associated with a
        /// Customer and Site.
        /// </summary>
        [ConfigurationProperty("ApiPassword", IsRequired=true)]
        public string ApiPassword
        {
            get { return (string)this["ApiPassword"]; }
            set { this["ApiPassword"] = value; }
        }

        /// <summary>
        /// Fully-qualified directory location for test data files used
        /// in the TestVidoopSecure project.
        /// </summary>
        [ConfigurationProperty("VidoopSecureTestData", IsRequired = true)]
        public string VidoopSecureTestData
        {
            get { return (string)this["VidoopSecureTestData"]; }
            set { this["VidoopSecureTestData"] = value; }
        }


        /// <summary>
        /// Phone number to use for SMS- and Voice-based tests.
        /// </summary>
        [ConfigurationProperty("PhoneNumber", IsRequired = true)]
        public string PhoneNumber
        {
            get { return (string)this["PhoneNumber"]; }
            set { this["PhoneNumber"] = value; }
        }
    }
}
